home *** CD-ROM | disk | FTP | other *** search
- static char checktime_prog[] = "@(#)Testung auf gültige Zeit";
- static char checktime_ver[] = "@(#)ver 1.00/kr ; 09.06.91";
- /* checktime Funktion testet auf gültigen Zeit-String
- **
- ** Autor Klaus Rath
- **
- ** Deklaration
- **
- ** Übergabe Die Funktion erwartet einen String in einem der folgenden
- ** Formate :
- ** hh:mm[:ss] -- Formate 1,2
- ** hh.mm[.ss] -- Formate 3,4
- ** hhmm[ss] -- Formate 5,6 (für DDB/4)
- ** (sssss | mmmm -- Kurzformate 7,8 (nur Sek./Min.)
- ** noch nicht implementiert !!!!! )
- **
- ** Rückgabe int [format|FALSE] wobei z.Zt. 1 <= format <=6
- **
- ** Anmerkungen Sollten keine Sekunden im Übergabestring angegeben worden
- ** sein, nimmt die Funktion 00 s an (Formate 1-6).
- **
- ** Änderungen 1.00 ; 09.06.91
- ** - Erste Version
- */
-
- #define DEBUG
-
- #include <stdio.h>
- #include <string.h>
- #ifdef __TURBOC__
- #include <stdlib.h>
- #endif
- #include "datum.h"
-
- int checktime(char *tstring)
- {
- char stunden_s[3];
- char minuten_s[3];
- char sekunden_s[3];
- int stunden_z;
- int minuten_z;
- int sekunden_z;
- int laenge;
- int format;
-
- /* Längenüberprüfung :
- */
- laenge = strlen(tstring);
- if ( laenge == 4 || laenge == 5 || laenge == 6 || laenge == 8 )
- ;
- else
- return(FALSE);
-
- /* Format überprüfen und umkopieren :
- */
- if ( ( tstring[2] == ':' && tstring[5] == ':' && laenge == 8 )
- ||
- ( tstring[2] == '.' && tstring[5] == '.' && laenge == 8 ) ) {
- stunden_s[0] = tstring[0];
- stunden_s[1] = tstring[1];
- stunden_s[2] = '\0';
- minuten_s[0] = tstring[3];
- minuten_s[1] = tstring[4];
- minuten_s[2] = '\0';
- sekunden_s[0] = tstring[6];
- sekunden_s[1] = tstring[7];
- sekunden_s[2] = '\0';
- if ( tstring[2] == ':' )
- format = TI_HMS_D;
- else if ( tstring[2] == '.' )
- format = TI_HMS_P;
- else
- return(FALSE);
- } /* ENDE: Formate 2,4 : hh[:.]mm[:.]ss */
-
- else if ( ( tstring[2] == ':' || tstring[2] == '.' ) && laenge == 5 ) {
- stunden_s[0] = tstring[0];
- stunden_s[1] = tstring[1];
- stunden_s[2] = '\0';
- minuten_s[0] = tstring[3];
- minuten_s[1] = tstring[4];
- minuten_s[2] = '\0';
- sekunden_s[0] = '0';
- sekunden_s[1] = '0';
- sekunden_s[2] = '\0';
- if ( tstring[2] == ':' )
- format = TI_HM_D;
- else if ( tstring[2] == '.' )
- format = TI_HM_P;
- else
- return(FALSE);
- } /* ENDE: Formate 1,3 : hh[:.]mm */
-
- else if ( laenge == 4 || laenge == 6 ) { /* Datenbank-Format */
- stunden_s[0] = tstring[0];
- stunden_s[1] = tstring[1];
- stunden_s[2] = '\0';
- minuten_s[0] = tstring[2];
- minuten_s[1] = tstring[3];
- minuten_s[2] = '\0';
- if ( laenge == 6 ) {
- sekunden_s[0] = tstring[4];
- sekunden_s[1] = tstring[5];
- sekunden_s[2] = '\0';
- format = TI_HMS_DB;
- }
- else if ( laenge == 4 ) {
- sekunden_s[0] = '0';
- sekunden_s[1] = '0';
- sekunden_s[2] = '\0';
- format = TI_HM_DB;
- }
- else
- return(FALSE);
- } /* ENDE: Datenbankformate 5,6 : hhmm[ss] */
- else
- return(FALSE);
- /* ENDE:if(Formatprüfung und Kopierung) */
-
- /* Konvertierung :
- */
- stunden_z = atoi(stunden_s);
- minuten_z = atoi(minuten_s);
- sekunden_z = atoi(sekunden_s);
-
- if ( stunden_z > 23 || stunden_z < 0 ||
- minuten_z > 59 || minuten_z < 0 ||
- sekunden_z > 59 || sekunden_z < 0 )
- return(FALSE);
-
- return(format);
- } /* ENDE: checktime() */
-
-